#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import requests

# 1、直接请求
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
url = 'https://www.douban.com/'
r = requests.get(url, headers=headers)

print(r.status_code)

print("====")

# 2、请求附带参数
r = requests.get('https://www.liaoxuefeng.com/search', params={'q': 'python'})
print(r.status_code)
# print(r.text)
print(r.encoding)
# print(r.content)


# 3、requests的方便之处还在于，对于特定类型的响应，例如JSON，可以直接获取
# r = requests.get('https://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20weather.forecast%20where%20woeid%20%3D%202151330&format=json')
# print(r.json())

# 4、需要传入HTTP Header时，我们传入一个dict作为headers参数
r = requests.get('https://www.douban.com/', headers=headers)
# print(r.text)

# 5、要发送POST请求，只需要把get()方法变成post()，然后传入data参数作为POST请求的数据
r = requests.post('https://accounts.douban.com/login',
                  data={'form_email': 'abc@example.com', 'form_password': '123456'}, headers=headers)
print(r.status_code)

# 6、requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据，可以直接传入json参数
params = {'key': 'value'}
url = 'https://www.douban.com/'
# r = requests.post(url, json=params) # 内部自动序列化为JSON

# 7、上传文件需要更复杂的编码格式，但是requests把它简化成files参数
# upload_files = {'file': open('report.xls', 'rb')}
# r = requests.post(url, files=upload_files)
